package com.ruoyi.service;

import com.ruoyi.entity.ActivityDetailDto;
import com.ruoyi.product.domain.ProductActivity;
import com.ruoyi.product.domain.VerActivitySkuRelate;

import java.math.BigDecimal;
import java.util.List;

public interface ProductActivitysService {

    /**
     * 删除活动（逻辑删除）
     * @param activityId 活动ID
     * @return 是否成功
     */
    boolean deleteActivityById(Long[] activityId);

    /**
     * 创建活动
     * @param activity 活动信息
     * @return 活动ID
     */
    Long createActivity(ProductActivity activity);

    /**
     * 更新活动
     * @param activity 活动信息
     * @return 是否成功
     */
    boolean updateActivity(ProductActivity activity);

    /**
     * 根据ID查询活动详情
     * @param activityId 活动ID
     * @return 活动详情（包含商品）
     */
    ActivityDetailDto getActivityDetail(Long activityId);

    /**
     * 查询所有活动
     * @return 活动列表
     */
    List<ProductActivity> getAllActivities(ProductActivity  activity);

//    /**
//     * 根据状态查询活动
//     * @param status 状态：0-未开始，1-进行中，2-已结束
//     * @return 活动列表
//     */
//    List<ProductActivity> getActivitiesByStatus(Integer status);
//
//    /**
//     * 根据类型查询活动
//     * @param activityType 活动类型
//     * @return 活动列表
//     */
//    List<ProductActivity> getActivitiesByType(String activityType);

    /**
     * 为活动添加商品
     * @param activityId 活动ID
     * @param skuId 商品SKU ID
     * @param price 活动价格
     * @return 是否成功
     */
    boolean addSkuToActivity(Long activityId, Long skuId, BigDecimal price);

    /**
     * 从活动中移除商品
     * @param activityId 活动ID
     * @param skuId 商品SKU ID
     * @return 是否成功
     */
    boolean removeSkuFromActivity(Long activityId, Long skuId);

    /**
     * 更新活动商品价格
     * @param activityId 活动ID
     * @param skuId 商品SKU ID
     * @param price 新价格
     * @return 是否成功
     */
    boolean updateActivitySkuPrice(Long activityId, Long skuId, BigDecimal price);

    /**
     * 查询活动下的所有商品
     * @param activityId 活动ID
     * @return 商品列表
     */
    List<VerActivitySkuRelate> getSkusByActivityId(Long activityId);
}
